# -*- mode: org -*-
#+title: gwwm - guile wayland windows manager.

fork from dwl, add guile to configure it.

* WARN
- Is a WIP project.
- Both api changes and errors occur.
- I don't use X11 app at basically, so I can't find some bugs about xwayland.

* how to build
you need
- automake
- autoconf
- bash
- guile
- [[https://github.com/Z572/guile-wayland][guile-wayland]]
- [[https://github.com/Z572/guile-wlroots][guile-wlroots]]
- [[https://github.com/Z572/guile-libinput][guile-libinput]]
- [[https://github.com/scheme-requests-for-implementation/srfi-189][srfi-189]]
- [[https://github.com/Z572/util572][util572]]
- pkg-config
- texinfo
- wlroots
- xorg-server-xwayland

optional:
- [[https://www.nongnu.org/guile-cairo/][guile-cairo]]

#+begin_src sh
  autoreconf -fiv
  ./configure
  make -j
#+end_src

* develop
If you use emacs, you can use =geiser-connect= to connect gwwm.

If you use guix:
#+begin_src sh
  git clone https://github.com/Z572/gwwm
  git clone https://github.com/Z572/guile-wayland
  git clone https://github.com/Z572/guile-wlroots
  git clone https://github.com/Z572/util572
  cd gwwm
  guix shell -D -f guix.scm
#+end_src

* configure
simple example
~/.config/gwwm/init.scm:
#+begin_src scheme
  (use-modules (gwwm)
               (gwwm config)
               (gwwm commands)
               (gwwm keymap)
               (gwwm hooks)
               (gwwm color))
  ;;; win+d
  (keymap-global-set (kbd (s d)) (lambda () (spawn "firefox" '("firefox"))))
  (gwwm
   (borderpx 1)
   (sloppyfocus? #t)
   (xkb-rules
    (make-xkb-rules
     "us"
     #:model "asus_laptop"
     #:options
     '("ctrl:ralt_rctrl"
       "ctrl:swapcaps_hyper"
       "shift:both_capslock")))
   (bordercolor (make-color "#ffbbeeff")))

#+end_src


* thanks
Thanks of guile, dwl , tinywl ,sway.
